<?php
namespace app\index\model;
use app\user\model\UserModel;
use think\Model;

class User extends Model
{

    // +----------------------------------------------------------------------
    // | 时间戳
    // +----------------------------------------------------------------------

    // 开启自动写入时间戳
    protected $autoWriteTimestamp = true;

    // 定义时间戳字段名
//    protected $createTime = 'create_at';
//    protected $updateTime = 'update_at';



    // +----------------------------------------------------------------------
    // | 类型转换
    // +----------------------------------------------------------------------


    // 类型转换
//    protected  $dateFormat = 'Y/m/d';
//    protected $type = [
//        'birthday' => 'timestamp',
//    ];


    // 定义类型转换
//    protected  $type = [
//        // 设置birthday为时间戳类型（整型）
//        'birthday' => 'timestamp:Y-m-d'
//    ];

    // +----------------------------------------------------------------------
    // | 读取器
    // +----------------------------------------------------------------------

    // birthday 读取器
//    protected function getBirthdayAttr($birthday)
//    {
//        return date('Y-m-d',$birthday);
//    }

    // 读取器
//    protected function getUserBirthdayAttr($birthday,$data)
//    {
//        return date('Y-m-d',$data['birthday']);
//    }

    //获取器还可以定义数据表中不存在的字段，例如：
    public function getStatusTextAttr($value,$data)
    {
        $status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
        return $status[$data['status']];
    }

    // +----------------------------------------------------------------------
    // | 修改器
    // +----------------------------------------------------------------------


    // birthday修改器
//    protected  function setBirthdayAttr($value)
//    {
//        return strtotime($value);
//    }

    // status修改器



    // +----------------------------------------------------------------------
    // | 自动完成
    // +----------------------------------------------------------------------


    // 定义自动完成的属性
//    protected $auto = ['status' => 1];  //新增及更新
//    protected $insert = ['status' => 1]; //新增
//    protected $update = ['status' => 1]; //修改

    // 定义自动完成的属性
    //protected $insert = ['status' => 1];

    // +----------------------------------------------------------------------
    // | 关联
    // +----------------------------------------------------------------------


    // 定义一对一关联
    public function profile()
    {
        // 用户HAS ONE档案关联
       return $this->hasOne('Profile');
    }

    // 定义一对多关联
    public function books()
    {
        return $this->hasMany('Book');
    }

    // 定义多对多关联
    public function roles()
    {
        // 用户 BELONGS_TO_MANY 角色
        return $this->belongsToMany('Role','access');
    }








}